Leadtools.Barcode Namespace > BarcodeReader Class > ReadBarcode Method : ReadBarcode(RasterImage,LeadRect,BarcodeSymbology[],IBarcodeReadOptions[]) Method |
For information about this method please see ReadBarcode(RasterImage,LogicalRectangle,BarcodeSymbology[],BarcodeReadOptions[]).
public BarcodeData ReadBarcode( RasterImage image, LeadRect searchBounds, BarcodeSymbology[] symbologies, IBarcodeReadOptions[] options )
'Declaration Public Overloads Function ReadBarcode( _ ByVal image As RasterImage, _ ByVal searchBounds As LeadRect, _ ByVal symbologies() As BarcodeSymbology, _ ByVal options() As IBarcodeReadOptions _ ) As BarcodeData
'Usage Dim instance As BarcodeReader Dim image As RasterImage Dim searchBounds As LeadRect Dim symbologies() As BarcodeSymbology Dim options() As IBarcodeReadOptions Dim value As BarcodeData value = instance.ReadBarcode(image, searchBounds, symbologies, options)
public BarcodeData ReadBarcode( RasterImage image, LeadRect searchBounds, BarcodeSymbology[] symbologies, IBarcodeReadOptions[] options )
function Leadtools.Barcode.BarcodeReader.ReadBarcode(RasterImage,LeadRect,BarcodeSymbology[],IBarcodeReadOptions[])( image , searchBounds , symbologies , options )
public: BarcodeData^ ReadBarcode( RasterImage^ image, LeadRect searchBounds, array<BarcodeSymbology>^ symbologies, array<IBarcodeReadOptions^>^ options )
Note: In LEADTOOLS for .NET, the equivalent to Leadtools.LeadRect is Leadtools.Forms.LogicalRectangle, also the equivalent to IBarcodeReadOptions is BarcodeReadOptions.
using Leadtools; using Leadtools.Codecs; using Leadtools.Barcode; using Leadtools.ImageProcessing; public async Task BarcodeReader_ReadBarcodeExample4() { string imageFileName = @"Assets\Barcode1.tif"; // Create a Barcode engine BarcodeEngine engine = new BarcodeEngine(); // Get the Barcode reader instance BarcodeReader reader = engine.Reader; using(RasterCodecs codecs = new RasterCodecs()) { StorageFile loadFile = await Tools.AppInstallFolder.GetFileAsync(imageFileName); using(RasterImage image = await codecs.LoadAsync(LeadStreamFactory.Create(loadFile))) { // Rotate the image by 90, so default option of reading horizonal barcodes will not work Debug.WriteLine("Rotating the image by 90 degrees"); RotateCommand rotate = new RotateCommand(90 * 100, RotateCommandFlags.Resize, RasterColorHelper.FromKnownColor(RasterKnownColor.White)); rotate.Run(image); // In the US, UPC barcodes are used to identity products. So, create an array of UPC symbologies BarcodeSymbology[] upcSymbologies = { BarcodeSymbology.UPCA, BarcodeSymbology.UPCE }; // Read the first UPC barcode from the image using default options Debug.WriteLine("Reading barcodes using default options"); BarcodeData barcode = reader.ReadBarcode(image, LeadRectHelper.Empty, upcSymbologies, null); // Show its location and data if found // This will print out "Not found" if(barcode != null) { Debug.WriteLine("Found a {0} barcode at {1}, data:\n{2}", barcode.Symbology, barcode.Bounds, barcode.Value); } else { Debug.WriteLine("Not found"); } // Now get the options we used previously, and change the 1D linear barcode read options // to search for barcodes in both horizontal and vertical directions // Note: Same options are used for UPCA and UPCE, so we only need one options class OneDBarcodeReadOptions oneDReadOptions = reader.GetDefaultOptions(BarcodeSymbology.UPCA) as OneDBarcodeReadOptions; // Change the read direction oneDReadOptions.SearchDirection = BarcodeSearchDirection.HorizontalAndVertical; // Try again using our options Debug.WriteLine("Reading barcodes using our options"); barcode = reader.ReadBarcode(image, LeadRectHelper.Empty, upcSymbologies, new IBarcodeReadOptions[] { oneDReadOptions }); // Show its location and data if found // This will find the barcode and print its information now if(barcode != null) { Debug.WriteLine("Found a {0} barcode at {1}, data:\n{2}", barcode.Symbology, barcode.Bounds, barcode.Value); } else { Debug.WriteLine("Not found"); } } } }